::WS::Utils::ServiceSimpleTypeDef Cleint FreshBookApi ValidEvent {
    enumeration {
        all
        category
        category.create
        category.delete
        category.update
        client
        client.create
        client.delete
        client.update
        estimate
        estimate.create
        estimate.delete
        estimate.sendByEmail
        estimate.update
        expense
        expense.create
        expense.delete
        expense.update
        invoice
        invoice.create
        invoice.delete
        invoice.dispute
        invoice.pastdue.1
        invoice.pastdue.2
        invoice.pastdue.3
        invoice.sendByEmail
        invoice.sendBySnailMail
        invoice.update
        item
        item.create
        item.delete
        item.update
        payment
        payment.create
        payment.delete
        payment.update
        project
        project.create
        project.delete
        project.update
        recurring
        recurring.create
        recurring.delete
        recurring.update
        staff
        staff.create
        staff.delete
        staff.update
        task
        task.create
        task.delete
        task.update
        time_entry
        time_entry.create
        time_entry.delete
        time_entry.update
    }
}

::WS::Utils::ServiceTypeDef Client FreshBookApi CallbackDefinition {
    event    {type ValidEvent minOccurs 1 maxOccurs 1}
    uri      {type string minOccurs 1 maxOccurs 1}
}

::WS::Utils::ServiceTypeDef Client FreshBookApi CallbackArray {
    callback_id {type string minOccurs 1 maxOccurs 1}
    event    {type ValidEvent minOccurs 1 maxOccurs 1}
    uri      {type string minOccurs 1 maxOccurs 1}
}

::WS::Utils::ServiceTypeDef Client FreshBookApi CallbackDetailArray {
    callback    {type CallbackArray()}
}


::WS::Client::DefineRestMethod FreshBookApi Callback callback.create {
    callback    {type CallbackDefinition}
} {
    callback_id {type string}
}

::WS::Client::DefineRestMethod FreshBookApi Callback callback.verify {
    callback_id {type string minOccurs 1 maxOccurs 1}
    verifier    {type string minOccurs 1 maxOccurs 1}
} {}

::WS::Client::DefineRestMethod FreshBookApi Callback callback.resendToken {
    callback_id {type string minOccurs 1 maxOccurs 1}
} {}

::WS::Client::DefineRestMethod FreshBookApi Callback callback.delete {
    callback_id {type string minOccurs 1 maxOccurs 1}
} {}

::WS::Client::DefineRestMethod FreshBookApi Callback callback.list {
    page        {type integer minOccurs 0 maxOccurs 1}
    per_page    {type integer minOccurs 0 maxOccurs 1}
} {
    callbacks    {type CallbackDetailArray}
}
